Complex database systems often need to propagate data, transactions and events within the database system's own database and also from one database to another. For example, a bank may need to transmit a financial transaction across several databases in order to maintain integrity in their records. As another example, a shipping company may need to send package tracking information across several systems in order to make this data available to its customers.
One method employed to transfer information in database systems is to use a data stream infrastructure. One such data stream infrastructure is described in U.S. Pat. No. 6,889,231, entitled “Asynchronous Information Sharing System”, the entire contents of which are incorporated herein. Such data stream architectures use the publisher/subscriber model to propagate data and events in a data stream from sources to subscribed destinations (“targets”). The source and targets of a stream may be within the same database, or in different databases.
Typically, propagating information from a source to a target takes place via queues. Queues act as “post boxes” where different applications can look for “mail” in the form of messages. When a publisher (such as a database server or other application) wants to contact subscribers (such as other database servers or applications), the publisher can leave messages in these queues so that the subscribers will be able to find and retrieve these messages. Queuing also provides a unified framework for processing events.